package edu.eam.paii.proyecto.entidades;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.*;
@Entity
/**
 * @author Hector Bedoya Ortegon
 * @author Felipe Suarez Bedoya
 * Esta entidad permite administrar toda la informacion de una Transaccion. 
 **/

/**
 * Name quevery 
 */
@NamedQueries(value = { @NamedQuery(name="Transaccion.listar", 
		query="select T from Transaccion T"),
		
	
})
@Inheritance(strategy=InheritanceType.JOINED)
public class Transaccion implements Serializable{
	// constantes tipo de transacciones
	public final static int TIPO_CONSIGNACION=0;
	public final static int TIPO_TRANSFERENCIA_EXTERNA=1;
	public final static int TIPO_TRANSFERENCIA=2;
	public final static int TIPO_RETIRO=3;
@Id
private int nro_Transaccion;
private Date fecha;
private Double monto;

@ManyToOne
@JoinColumn(name = "id_TipoTransaccion")
private Tipo_Transaccion tipoTransaccion;

@ManyToOne
@JoinColumn(name = "id_Turno")
private Turno turnoTransaccion;

@ManyToOne
@JoinColumn(name = "id_Cliente")
private Cliente clienteTransaccion;

public Transaccion(int nro_Transaccion, Date fecha, Double monto,
		Turno turnoTransaccion, Cliente clienteTransaccion) {
	super();
	this.nro_Transaccion = nro_Transaccion;
	this.fecha = fecha;
	this.monto = monto;
	this.turnoTransaccion = turnoTransaccion;
	this.clienteTransaccion = clienteTransaccion;
}

public int getNro_Transaccion() {
	return nro_Transaccion;
}

public void setNro_Transaccion(int nro_Transaccion) {
	this.nro_Transaccion = nro_Transaccion;
}

public Date getFecha() {
	return fecha;
}

public void setFecha(Date fecha) {
	this.fecha = fecha;
}

public Double getMonto() {
	return monto;
}

public void setMonto(Double monto) {
	this.monto = monto;
}

public Turno getTurnoTransaccion() {
	return turnoTransaccion;
}

public void setTurnoTransaccion(Turno turnoTransaccion) {
	this.turnoTransaccion = turnoTransaccion;
}

public Cliente getClienteTransaccion() {
	return clienteTransaccion;
}

public void setClienteTransaccion(Cliente clienteTransaccion) {
	this.clienteTransaccion = clienteTransaccion;
}


}
